﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Data.OleDb;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace FallasI
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private string tipoEquipo;
        private string tipoFalla;

        private DataSet conexion(string hoja)
        {
            //aca va la ruta del archivo excel
            string pathFile = "D:\\ReglasFallas.xlsx";
            
            //declaramos las variables         
            OleDbConnection conexion = null;
            DataSet dataSet = null;
            OleDbDataAdapter dataAdapter = null;
            string consultaHojaExcel = "Select * from [" + hoja + "$]";
            string cadenaConexionArchivoExcel = "provider=Microsoft.ACE.OLEDB.12.0;Data Source='" + pathFile + "';Extended Properties=Excel 12.0;";

             //Validamos que el usuario ingrese el nombre de la hoja del archivo de excel a leer
            if (string.IsNullOrEmpty(hoja))
            {
                MessageBox.Show("No hay una hoja para leer");
                return null;
            }
            else
            {
                try
                {
                    //Si el usuario escribio el nombre de la hoja se procedera con la busqueda
                    conexion = new OleDbConnection(cadenaConexionArchivoExcel);//creamos la conexion con la hoja de excel
                    conexion.Open(); //abrimos la conexion
                    dataAdapter = new OleDbDataAdapter(consultaHojaExcel, conexion); //traemos los datos de la hoja y las guardamos en un dataSdapter
                    dataSet = new DataSet(); // creamos la instancia del objeto DataSet
                    dataAdapter.Fill(dataSet, hoja);//llenamos el dataset
                    conexion.Close();//cerramos la conexion
                    return dataSet;
                }
                catch (Exception ex)
                {
                    //en caso de haber una excepcion que nos mande un mensaje de error
                    MessageBox.Show("Error, Verificar el archivo o el nombre de la hoja: "+ ex.Message);
                    return null;
                }
            }

        }

        //private void LLenarGrid(string hoja)
        //{
        //    string pathFile = "D:\\Gabriel\\Facu\\Cursando\\75.67 - Sistemas Aautomaticos de Diagnostico y Deteccion de Fallas\\FallasI\\ReglasFallas.xlsx";
            
        //    //declaramos las variables         
        //    OleDbConnection conexion = null;
        //    DataSet dataSet = null;
        //    OleDbDataAdapter dataAdapter = null;
        //    string consultaHojaExcel = "Select * from [" + hoja + "$]";
            

        //    //esta cadena es para archivos excel 2007 y 2010
        //    string cadenaConexionArchivoExcel = "provider=Microsoft.ACE.OLEDB.12.0;Data Source='" + pathFile + "';Extended Properties=Excel 12.0;";

        //    //para archivos de 97-2003 usar la siguiente cadena
        //    //string cadenaConexionArchivoExcel = "provider=Microsoft.Jet.OLEDB.4.0;Data Source='" + archivo + "';Extended Properties=Excel 8.0;";

        //    //Validamos que el usuario ingrese el nombre de la hoja del archivo de excel a leer
        //    if (string.IsNullOrEmpty(hoja))
        //    {
        //        MessageBox.Show("No hay una hoja para leer");
        //    }
        //    else
        //    {
        //        try
        //        {
        //            //Si el usuario escribio el nombre de la hoja se procedera con la busqueda
        //            conexion = new OleDbConnection(cadenaConexionArchivoExcel);//creamos la conexion con la hoja de excel
        //            conexion.Open(); //abrimos la conexion
        //            dataAdapter = new OleDbDataAdapter(consultaHojaExcel, conexion); //traemos los datos de la hoja y las guardamos en un dataSdapter
        //            dataSet = new DataSet(); // creamos la instancia del objeto DataSet
        //            dataAdapter.Fill(dataSet, hoja);//llenamos el dataset
        //            //dataGridView1.DataSource = dataSet.Tables[0]; //le asignamos al DataGridView el contenido del dataSet
        //            conexion.Close();//cerramos la conexion
        //           // dataGridView1.AllowUserToAddRows = false;       //eliminamos la ultima fila del datagridview que se autoagrega

        //            //comboBox1.DataSource = dataSet.Tables[0];
        //           // comboBox1.DisplayMember = "TIPOEQUIPO";
                    
                     
                    
        //        }
        //        catch (Exception ex)
        //        {
        //            //en caso de haber una excepcion que nos mande un mensaje de error
        //            MessageBox.Show("Error, Verificar el archivo o el nombre de la hoja: "+ ex.Message);
        //        }
        //    }

        //}

        private void BtnERF_Click(object sender, EventArgs e)
        {
            //guardo el tipo de equipo
            tipoEquipo = "RF";

            DataSet dataset = conexion("Hoja1");

            panelFallas.Visible = true;
            PanelEquipos.Visible = false;
            btnOpcion.Text = "Volver";

            int cantReg = dataset.Tables[0].Rows.Count;
            
            foreach(DataRow dr in dataset.Tables[0].Rows)
            {
                if (dr["Equipo"].ToString()=="Refrigeracion Familiar"){

                    if (!listBoxFallas.Items.Contains(dr["Falla"].ToString()))
                    {
                    listBoxFallas.Items.Add(dr["Falla"].ToString());
                  // comboBox1.Items.Add(dr["Falla"].ToString());
                    }
                   
                }
            }
            dataset.Dispose();

        }

        private void btnERC_Click(object sender, EventArgs e)
        {
            //guardo el tipo de equipo
            tipoEquipo = "RC";

            DataSet dataset = conexion("Hoja1");

            panelFallas.Visible = true;
            PanelEquipos.Visible = false;
            btnOpcion.Text = "Volver";

            int cantReg = dataset.Tables[0].Rows.Count;

            foreach (DataRow dr in dataset.Tables[0].Rows)
            {
                if (dr["Equipo"].ToString() == "Refrigeracion Comercial")
                {

                    if (!listBoxFallas.Items.Contains(dr["Falla"].ToString()))
                    {
                        listBoxFallas.Items.Add(dr["Falla"].ToString());
                        // comboBox1.Items.Add(dr["Falla"].ToString());
                    }
                }
            }

            dataset.Dispose();
        }

        private void btnAA_Click(object sender, EventArgs e)
        {
            //guardo el tipo de equipo
            tipoEquipo = "AA";

            DataSet dataset = conexion("Hoja1");

            panelFallas.Visible = true;
            PanelEquipos.Visible = false;
            btnOpcion.Text = "Volver";

            int cantReg = dataset.Tables[0].Rows.Count;

            foreach (DataRow dr in dataset.Tables[0].Rows)
            {
                if (dr["Equipo"].ToString() == "Aire Acondicionado")
                {

                    if (!listBoxFallas.Items.Contains(dr["Falla"].ToString()))
                    {
                        listBoxFallas.Items.Add(dr["Falla"].ToString());
                        // comboBox1.Items.Add(dr["Falla"].ToString());
                    }
                }
            }

            dataset.Dispose();
        }

        private void Form1_Load(object sender, EventArgs e)
        {

        }

        private void btnOrigenElectrico_Click(object sender, EventArgs e)
        {
            DataSet dataset = conexion("Hoja1");

            panelFallas.Visible = false;
            PanelEquipos.Visible = false;
            panelCausas.Visible = true;

            int cantReg = dataset.Tables[0].Rows.Count;

            foreach (DataRow dr in dataset.Tables[0].Rows)
            {
                if (tipoEquipo == "RF")
                {
                    if (dr["Equipo"].ToString() == "Refrigeracion Familiar" && dr["Tipo"].ToString()=="Electrico" && dr["Falla"].ToString()==tipoFalla)
                    {

                        comboCausas.Items.Add(dr["Causa"].ToString());
                    }
                
                }
               
            }

            dataset.Dispose();
        }

        private void btnOrigenMecanico_Click(object sender, EventArgs e)
        {
            DataSet dataset = conexion("Hoja1");

            panelFallas.Visible = false;
            PanelEquipos.Visible = false;
            panelCausas.Visible = true;

            int cantReg = dataset.Tables[0].Rows.Count;

            foreach (DataRow dr in dataset.Tables[0].Rows)
            {
                if (tipoEquipo == "RF")
                {
                    if (dr["Equipo"].ToString() == "Refrigeracion Familiar" && dr["Tipo"].ToString() == "Mecanico" && dr["Falla"].ToString() == tipoFalla)
                    {

                        comboCausas.Items.Add(dr["Causa"].ToString());
                    }

                }
            }

            dataset.Dispose();
        }

        private void listBoxFallas_SelectedIndexChanged(object sender, EventArgs e)
        {
            tipoFalla = listBoxFallas.SelectedItem.ToString();
            btnOrigenElectrico.Enabled = true;
            btnOrigenMecanico.Enabled = true;
        }

        private void btnOpcion_Click(object sender, EventArgs e)
        {
            if (btnOpcion.Text == "Volver")
            {
                if (panelCausas.Visible == true)
                {
                    panelCausas.Visible = false;
                    panelFallas.Visible = true;
                    PanelEquipos.Visible = false;
                }
                else
                {

                    if (panelFallas.Visible == true)
                    {
                        panelCausas.Visible = false;
                        panelFallas.Visible = false;
                        PanelEquipos.Visible = true;
                        btnOpcion.Text = "Salir";
                    }
                }
            }

            if (btnOpcion.Text == "Salir")
            {
                this.Close();
            }
        }

        private void label1_Click(object sender, EventArgs e)
        {

        }

      

    }
}